// import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'
import { createRouter, createWebHashHistory, type RouteRecordRaw } from 'vue-router'
// 导入主布局组件
// 注意：你需要先在 src/layout 目录下创建并迁移好 Layout 组件
import Layout from '@/layout/index.vue'

/**
 * 定义路由规则数组
 * 我们严格按照旧项目的结构进行转换
 */
const routes: Array<RouteRecordRaw> = [
  // 登录页 (独立于主布局)
  {
    path: '/login',
    component: () => import('@/views/login/index.vue'),
    meta: { title: '苍穹外卖', hidden: true, notNeedAuth: true },
  },
  // 404 页面 (独立于主布局)
  {
    path: '/404',
    component: () => import('@/views/404.vue'),
    meta: { title: '苍穹外卖', hidden: true, notNeedAuth: true },
  },
  // 主应用布局
  {
    path: '/',
    component: Layout,
    redirect: 'dashboard',
    children: [
      {
        path: 'dashboard',
        component: () => import('@/views/dashboard/index.vue'),
        name: 'Dashboard',
        meta: {
          title: '工作台',
          icon: 'House',
          affix: true,
        },
      },
      {
        path: 'statistics',
        component: () => import('@/views/statistics/index.vue'),
        name: 'Statistics', // 建议为路由添加 name
        meta: {
          title: '数据统计',
          icon: 'Histogram',
        },
      },
      {
        path: 'order',
        component: () => import('@/views/order/index.vue'),
        name: 'Order', // 建议为路由添加 name
        meta: {
          title: '订单管理',
          icon: 'Checked',
        },
      },
      {
        path: 'setmeal',
        component: () => import('@/views/setmeal/index.vue'),
        name: 'Setmeal', // 建议为路由添加 name
        meta: {
          title: '套餐管理',
          icon: 'HotWater',
        },
      },
      {
        path: 'dish',
        component: () => import('@/views/dish/index.vue'),
        name: 'Dish', // 建议为路由添加 name
        meta: {
          title: '菜品管理',
          icon: 'Dish',
        },
      },
      {
        path: 'dish/add',
        component: () => import('@/views/dish/addDishtype.vue'),
        name: 'DishAdd', // 建议为路由添加 name
        meta: {
          title: '添加菜品',
          hidden: true,
        },
      },
      {
        path: 'category',
        component: () => import('@/views/category/index.vue'),
        name: 'Category', // 建议为路由添加 name
        meta: {
          title: '分类管理',
          icon: 'Menu',
        },
      },
      {
        path: 'employee',
        component: () => import('@/views/employee/index.vue'),
        name: 'Employee', // 建议为路由添加 name
        meta: {
          title: '员工管理',
          icon: 'Avatar',
        },
      },
      {
        path: 'employee/add',
        component: () => import('@/views/employee/addEmployee.vue'),
        name: 'EmployeeAdd', // 建议为路由添加 name
        meta: {
          title: '添加员工',
          hidden: true,
        },
      },
      {
        path: 'setmeal/add',
        component: () => import('@/views/setmeal/addSetmeal.vue'),
        name: 'SetmealAdd', // 建议为路由添加 name
        meta: {
          title: '添加套餐',
          hidden: true,
        },
      },
          // --- 核心修改在这里：添加下面这条新的路由规则 ---
      {
        path: 'setmeal/edit/:id', // 使用 :id 作为动态参数
        component: () => import('@/views/setmeal/addSetmeal.vue'), // 复用同一个组件
        name: 'SetmealEdit',      // 命名为 'SetmealEdit'，与跳转时使用的 name 匹配
        meta: {
          title: '修改套餐',
          hidden: true,       // 在侧边栏隐藏
        },
      },
          // --- 核心修改在这里：添加下面这条新的路由规则 ---
      {
        path: 'dish/edit/:id', // 使用 :id 作为动态参数
        name: 'DishEdit',      // 命名为 'DishEdit'，与跳转时使用的 name 匹配
        component: () => import('@/views/dish/addDishtype.vue'), // 复用同一个组件
        meta: {
          title: '修改菜品',
          hidden: true,       // 在侧边栏隐藏
        },
      },
       // --- 核心修改在这里：添加下面这条新的路由规则 ---
      {
        path: 'employee/edit/:id', // 使用 :id 作为动态参数
        name: 'EmployeeEdit',      // 命名为 'EmployeeEdit'，与跳转时使用的 name 匹配
        component: () => import('@/views/employee/addEmployee.vue'), // 复用同一个组件
        meta: {
          title: '修改员工',
          hidden: true,       // 在侧边栏隐藏
        },
      },
      {
        path: 'test-shop',
        name: 'TestShop',
        component: () => import('@/views/TestShopStatus.vue'),
        meta: { title: '店铺测试', icon: 'Shop' },
      },
      // {
      //   path: 'inform',
      //   name: 'Inform',
      //   component: () => import('@/views/inform/index.vue'),
      //   meta: { title: '消息中心', icon: 'Bell' } // 使用 Element Plus 图标名
      // },
    ],
  },
  // 通配符路由，用于匹配所有未定义的路径，必须放在最后
  {
    path: '/:pathMatch(.*)*', // vue-router@4 的通配符语法
    redirect: '/404',
    meta: { hidden: true },
  },
]

// 创建路由实例
const router = createRouter({
   // 2. 使用 createWebHashHistory() 来创建 history 实例
   history: createWebHashHistory(import.meta.env.BASE_URL),

  // 挂载我们定义好的路由规则
  routes,

  // 配置路由切换时的页面滚动行为
  scrollBehavior(to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition
    } else {
      return { top: 0, left: 0 }
    }
  },
})

export default router
